home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / include / incl98.zoo / signal.h < prev    next >
C/C++ Source or Header  |  1993-11-05  |  4KB  |  118 lines

  1. #ifndef _SIGNAL_H
  2. #define _SIGNAL_H
  3.  
  4. #ifndef _COMPILER_H
  5. #include <compiler.h>
  6. #endif
  7.  
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11.  
  12. #define    __NSIG        31        /* number of signals recognized */
  13.  
  14. #ifndef _POSIX_SOURCE
  15. # define NSIG __NSIG
  16. #endif /* _POSIX_SOURCE */
  17.  
  18. #define    SIGNULL        0        /* not really a signal */
  19. #define SIGHUP        1        /* hangup signal */
  20. #define SIGINT        2        /* sent by ^C */
  21. #define SIGQUIT        3        /* quit signal */
  22. #define SIGILL        4        /* illegal instruction */
  23. #define SIGTRAP        5        /* trace trap */
  24. #define SIGABRT        6        /* abort signal */
  25. # define SIGIOT SIGABRT
  26. #define SIGPRIV        7        /* privilege violation */
  27. # define SIGEMT SIGPRIV
  28. #define SIGFPE        8        /* divide by zero */
  29. #define SIGKILL        9        /* cannot be ignored */
  30. #define SIGBUS        10        /* bus error */
  31. #define SIGSEGV        11        /* illegal memory reference */
  32. #define SIGSYS        12        /* bad argument to a system call */
  33. #define SIGPIPE        13        /* broken pipe */
  34. #define SIGALRM        14        /* alarm clock */
  35. #define SIGTERM        15        /* software termination signal */
  36.  
  37. #define SIGURG        16        /* urgent condition on I/O channel */
  38. #define SIGSTOP        17        /* stop signal not from terminal */
  39. #define SIGTSTP        18        /* stop signal from terminal */
  40. #define SIGCONT        19        /* continue stopped process */
  41. #define SIGCHLD        20        /* child stopped or exited */
  42. #define SIGTTIN        21        /* read by background process */
  43. #define SIGTTOU        22        /* write by background process */
  44. #define SIGIO        23        /* I/O possible on a descriptor */
  45. #define SIGXCPU        24        /* CPU time exhausted */
  46. #define SIGXFSZ        25        /* file size limited exceeded */
  47. #define SIGVTALRM    26        /* virtual timer alarm */
  48. #define SIGPROF        27        /* profiling timer expired */
  49. #define SIGWINCH    28        /* window size changed */
  50. #define SIGUSR1        29        /* user signal 1 */
  51. #define SIGUSR2        30        /* user signal 2 */
  52.  
  53. typedef void __CDECL (*__Sigfunc) __PROTO((int signum));
  54. typedef short sig_atomic_t;
  55.  
  56. #define       SIG_DFL    ((__Sigfunc)0L)
  57. #define       SIG_IGN    ((__Sigfunc)1L)
  58. #define       SIG_ERR    ((__Sigfunc)-1L)
  59.  
  60. __EXTERN __Sigfunc    signal    __PROTO((int sig, __Sigfunc func));
  61. __EXTERN int        raise    __PROTO((int sig));
  62. __EXTERN int        kill    __PROTO((int, int));
  63. #ifndef _POSIX_SOURCE
  64. __EXTERN int        killpg    __PROTO((int, int));
  65. #endif /* _POSIX_SOURCE */
  66.  
  67. #define _SIGSET_INDEX(__sig)    (__sig / 32)
  68. #define _SIGSET_BITPOS(__sig)    (__sig % 32)
  69. #define _SIGSET_MAX_INDEX    (__NSIG / 32)
  70.  
  71. typedef struct {
  72.   long __sigset_data[_SIGSET_MAX_INDEX + 1];
  73. } sigset_t;
  74.  
  75. #ifdef __MINT__
  76. # ifndef __STRICT_ANSI__
  77. struct sigaction {
  78.     __Sigfunc    sa_handler;    /* pointer to signal handler */
  79.     sigset_t    sa_mask;    /* additional signals masked during delivery */
  80. /* pain here... POSIX forces us to use int, we would prefer short */
  81.     int         sa_flags;    /* signal specific flags */
  82. /* signal flags */
  83. #define SA_NOCLDSTOP    1    /* don't send SIGCHLD when they stop */
  84. };
  85.  
  86. __EXTERN long    sigsetmask  __PROTO((long mask));
  87. __EXTERN long    sigblock    __PROTO((long mask));
  88. __EXTERN int    sigaction   __PROTO((int, const struct sigaction *,
  89.                     struct sigaction *));
  90. __EXTERN int    sigaddset   __PROTO((sigset_t *set, int signo));
  91. __EXTERN int    sigdelset   __PROTO((sigset_t *set, int signo));
  92. __EXTERN int    sigemptyset __PROTO((sigset_t *set));
  93. __EXTERN int    sigfillset  __PROTO((sigset_t *set));
  94. __EXTERN int    sigismember __PROTO((sigset_t *set, int signo));
  95. __EXTERN int    sigpending  __PROTO((sigset_t *set));
  96. __EXTERN int    sigprocmask __PROTO((int how, const sigset_t *set,
  97.                     sigset_t *oset));
  98. __EXTERN int    sigsuspend  __PROTO((const sigset_t *sigmask));
  99.  
  100. /* values for "how" parameter to sigprocmask() */
  101. #define SIG_BLOCK    0
  102. #define SIG_UNBLOCK    1
  103. #define SIG_SETMASK    2
  104.  
  105. #ifndef _POSIX_SOURCE
  106. /* a mask for signals */
  107. #define sigmask(__sig) (1L << (__sig))
  108. #endif /* _POSIX_SOURCE */
  109.  
  110. # endif /* __STRICT_ANSI__ */
  111. #endif /* __MINT__ */
  112.  
  113. #ifdef __cplusplus
  114. }
  115. #endif
  116.  
  117. #endif /* _SIGNAL_H */
  118.